Consider a peer-to-peer network with a distinguished node called the source. The source wants to send a stream of bytes to a set of nodes in the peer-to-peer network called the receivers at a fixed rate (i.e. each receiver needs to receive data at the specified rate). The remaining nodes in the peer-to-peer network are called helpers and their role is to relay information. They do not have any rate requirements.
In the peer-to-peer network, each node has a fixed set of outgoing links towards neighbouring nodes over which it sends out data. We call these links overlay links. An overlay link from a node i to its neighbour node j uses several underlay links. In a real setting such an overlay link can be assimilated with a UDP flow from host i to host j in an IP network, while an underlay link can be assimilated with a physical link connecting two IP routers.
If node i sends data to node j on the overlay link (i,j) at a rate c then all the underlay links used by link (i,j) need to support rate c in addition to any other traffic they might be transmitting. Underlay links can be shared among overlay links. Thus, if an underlay link is being used simultaneously by two overlay links which transmit data at rates c1 and c2 respectively, then the underlay link will be used to send data from both overlay links at rate c1+c2.
Underlay links have a maximum rate at which they can be used. We introduce the natural concept of feasible rate allocation: a set of rates for the overlay links supported by the underlay links (i.e. all underlay links are used at rates lower than the maximum rate which they can sustain).
The congestion control problem can be formulated as a cost minimization problem. We can assign a real cost to each rate allocation. This cost characterizes the level of congestion in the network for that specific rate allocation. We obtain a global cost function defined on the set of all possible rate allocations. Equivalently, the global cost can be represented as the set of marginal overlay link costs (or overlay link prices). Among all feasible rate allocations such that all of the receivers' rate requirements are satisfied, consider a rate allocation achieving the minimum global cost. We call such a rate allocation a globally optimal allocation for the chosen global cost function.
Example of Cost Function Capturing Congestion and ISP Requirements:
A specific set of link prices can be defined as follows: For a particular overlay link e from node i to node j, we set its price to have the following two additive components:                the first one proportional to the observed packet Round Trip Time (RTT) from node i to node j—the congestion term,        the second one a constant defined by the Internet Service Provider (ISP) (e.g. the sum of the weights of the underlay links used by the overlay link e)—the ISP term.        
The price functions described above have the following properties: the congestion term of the price is inversely proportional to the spare capacity of the overlay link, while the ISP term can be set by the ISP to specific values chosen to avoid intense usage of specific underlay links in the underlying physical topology.
Then any mechanism which guarantees convergence to overlay link rates forming a globally optimal allocation for the cost function defined above performs ISP-friendly congestion control for peer-to-peer live streaming systems.
Prior art knows, through the publication “Minimum cost multicast over coded packet networks” (Desmond S. Lun, Niranjan Ratnakar, Muriel Medard, Ralf Koetter, David R. Karger, Tracey Ho, Ebad Ahmed, and Fang Zhao. IEEE/ACM Trans. Netw., 14 (SI):2608-2623, 2006), a message passing scheme which computes a globally optimal allocation. The scalability of this approach is limited due to the fact that messages relative to each receiver need to be passed throughout the network. Thus the number of state variables to be maintained at each node scales linearly with the number of receivers.
Prior art also knows, through the publication “Min-cost selfish multicast with network coding” (S. Bhadra, S. Shakkottai, and P. Gupta. Information Theory, IEEE Transactions on, 52 (11):5077-5087, 2006), a so-called UESSM selfish routing algorithm. It is shown that UESSM converges to the min-cost flow allocation for a particular type of cost function. This approach has the same scalability limitations as the above-cited publication by Lun et al.
Consider a peer-to-peer network as defined previously which does not contain any helper nodes. Thus, the source wishes to convey a stream of bytes to all the other nodes in the network at a fixed rate. Previously described solutions in the publications by Lun et al. and Bhadra et al. also apply to this case, but they maintain the same scalability issues.
In “Utility maximization in peer-to-peer systems” (Minghua Chen, Miroslav Ponec, Sudipta Sengupta, Jin Li, and Philip A. Chou. In SIGMETRICS '08: Proceedings of the 2008 ACM SIGMETRICS international conference on Measurement and modeling of computer systems, pages 169-180, New-York, N.Y., USA, 2008. ACM), the authors wish to maximize a utility function. The authors present a solution involving packing a polynomial number of depth-1 and -2 Steiner trees for multisource multicast. The scalability of their approach is again limited as it requires all peers to maintain data exchanges with all other peers.